import React, { useReducer } from 'react';
const CHANGE_LOCALE = 'CHANGE_LOCALE';

const mainContext = React.createContext();

const reducer = (state, action) => {
  switch (action.type) {
    case CHANGE_LOCALE:
      return { ...state, locale: action.locale || 'zh' };
    default:
      return state;
  }
};

const ContextProvider = (props) => {
  const [state, dispatch] = useReducer(reducer, {
    locale: 'zh',
  });
  return (
    <mainContext.Provider value={{ state, dispatch }}>
      {props.children}
    </mainContext.Provider>
  );
};

export { ContextProvider, mainContext, reducer };
